Insecure Bank2 취약점(13)

Insecure Bank2 취약점(13)

Description
안드로이드 백업 취약점 안드로이드 백업 취약점안드로이드 백업 취약점안드로이드 백업 취약점
category
MobileHacking
Tag
Mobile Security
Andorid
Date
Mar 2, 2024 03:56 AM

안드로이드 백업 취약점

안드로이드 백업 취약점이란?

안드로이드에서는 기본적으로 설치된 애플리케이션의 데이터를 백업하고 복구하는 메커니즘을 제공한다. 백업에는 클라우드 백업과 수동 백업 2가지로 이루어져 있는데 상대적으로 클라우드 백업은 google에서 관리를 해주기 때문에 안전하지만 수동 백업은 보안상 취약할 수 있다.
 

취약점 진단

애플리케이션의 전체 백업은 AndroidManifest.xml의 allowBackup 속성에 따라 결정된다.
해당 속성값이 false인 경우 해당 패키지의 데이터는 추출되지 않는다.
InsecureBank같은 경우 백업이 가능해보인다.
notion image
 
adb를 이용하여 백업을 해보았다.
아래와 같이 명령어를 입력해주면 디바이스에 backup 관련 메뉴가 팝업되면서 BACK UP MY DATA를 눌러주어 백업을 마무리 해주면 된다.
notion image
notion image
 
백업 데이터를 살펴보았다. 첫 번째 줄은 파일 포멧 식별자 부분이고, 두 번째 줄은 백업 형식의 버전이다. 세 번째 줄은 압출 플래그값, 4번째 줄은 암호화의 여부이다.
notion image
 
ab확장자를 압축해제하기 위해서는 abe.jar를 이용하면 된다.
notion image
 
insecurebankv2.tar 파일을 압축해제 한 결과 sp dir에서 중요 정보를 찾을 수 있었다.
notion image
 
위 중요 파일을 변조 한 뒤 복원 시키는 과정을 진행해 보았다.
변조된 tar 파일을 abe.jar 를 통해 다시 ab확장자로 만들었다.
notion image
 
이후 adb를 이용해 복원 해주었다.
notion image
notion image
 
이와 같이 백업과 복구를 통해 중요 설정 정보를 변조하거나 중요 정보를 조회 할 수 있는 취약점이 존재한다.
 

대응방안

대응방안은 AndroidManifest.xml의 allowBackup 속성을 false 시켜주면 된다.
이후 백업은 가능하지만 아무것도 추출되지 않는다.